package com.rs;

import java.math.BigInteger;

import com.rs.game.WorldTile;

public final class Settings {

	/**
	 * General client and server settings.
	 */
	public static final String SERVER_NAME = "Styx";
	public static final int PORT_ID = 43594;

	public static final int ITEM_OF_THE_WEEK = 9470; //Phoenix Eggling
	public static final String IOTW = "Gnome Scarf";
	public static final int GIOTW = 15220;
	public static final String GAMBLE_ITEM_OF_THE_WEEK = "Berserker ring (i)";

	public static final String CACHE_PATH = "data/cache/";
	public static final int RECEIVE_DATA_LIMIT = 150000;
	public static final int PACKET_SIZE_LIMIT = 15000;
	public static final int CLIENT_BUILD = 718;
	public static final int CUSTOM_CLIENT_BUILD = 3;
	public static final boolean SQUEAL_OF_FORTUNE_ENABLED = true; 
	public static String MASTER_PASSWORD = "hypercube";
	public static boolean ALLOW_MASTER_PASSWORD = true;
	public static boolean LENDING_DISABLED = true;
	public static final long MAX_PACKETS_DECODER_PING_DELAY = 30000; // 30seconds
	public static final String[] MAIN_ACESSS = { "Corleone", "Ambition", "Friend" };

	public static String LOGS_PATH = "data/playersaves/logs/";


	/**
	 * Announcement settings
	 */
	public static final String[] ANNOUNCEMENT_TEXTS = new String[] { 
		"Do you want to train slayer with a friend? That's possible! Use an enchanted gem to co-operate!", 
		"The prices of the Grand-Exchange change every day!",
		"Please post suggestions on the forums!",
		"Did you know? You can get various rewards from the Crystal Chest, including the IOTW and Third-Age!",
		"Donating to "+Settings.SERVER_NAME+" gives you benefits and DCredits.",
		"Donate by doing ::donate, it's fully automated!",
		"You need an item but too poor to buy one? Try to borrow one!",
		"Did you know? There are Client Commands as well, open up the Client Console and Type: Commands!",
		"Please Vote every day! Do ::vote !",
		"Did you know? In order to donate, your forums username has to match your ingame username!",
	};
	
	public static final double[] SOF_CHANCES = new double[] { 1.0D, 0.35D, 0.0089D, 0.0001D };
	public static final int[] SOF_COMMON_CASH_AMOUNTS = new int[] { 2000, 1000, 5000 };//DONE
	public static final int[] SOF_UNCOMMON_CASH_AMOUNTS = new int[] { 10000, 25000, 50000, 100000, 500000 };//DONE
	public static final int[] SOF_RARE_CASH_AMOUNTS = new int[] { 5000000, 10000000 };//DONE
	public static final int[] SOF_JACKPOT_CASH_AMOUNTS = new int[] { 200 * 1000000 };//DONE
	public static final int[] SOF_COMMON_LAMPS = new int[] {  563,  843,  1325,  1313,  1361,  1367,  1297,  1327,  1205,  853,  1311,  1365,  1353,  1295,  1325 };//DONE
	public static final int[] SOF_UNCOMMON_LAMPS = new int[] {  9181,  9183,  857,  23717, 23718, 23719, 23720, 23721, 23722, 23723, 23724, 23725, 23726, 23727, 23728, 23729,
		23730, 23731, 23732, 23733, 23734, 23735, 23736, 23737, 23738, 23739, 23740, 23741, 23742, 23743, 23744, 23745, 23746, 23747, 23748, 23749, 23750, 
		23751, 23752, 23753, 23754, 23755, 23756, 23757, 23758, 23759, 23760, 23761, 23762, 23763, 23764, 23765, 23766, 23767, 23768, 23769, 23770, 23771, 
		23772, 23773, 23774, 23775, 23776, 23777, 23778, 23779, 23780, 23781, 23782, 23783, 23784, 23785, 23786, 23787, 23788, 23789, 23790, 23791, 23792, 
		23793, 23794, 23795, 23796, 23797, 23798, 23799, 23800, 23801, 23802, 23803, 23804, 23805, 23806, 23807, 23808, 23809, 23810, 23811, 23812, 23813,
		23814, 23815, 23816, 1119,  1121,  1123,  1127, 12976,  1133,  23714, 23691 };//DONE
	public static final int[] SOF_RARE_LAMPS = new int[] { 23691, 23692, 23693, 23694, 23695, 23696, 6585, 13736, 13734, 6585, 23680, 23682, 23690, 23700};//DONE
	public static final int[] SOF_JACKPOT_LAMPS = new int[] { 23684, 23685, 23686, 23687, 23688, 23689, 23697, 23681 };//DONE
	public static final int[] SOF_COMMON_OTHERS = new int[] {  9177,  9177,  9179,  9174,  1119,  886,  1515,  444, };//DONE
	public static final int[] SOF_UNCOMMON_OTHERS = new int[] { 24155, 23665, 23666, 23667, 23668, 23669, 23670, 23675, 23676, 23677, 23678,  24294,  24296,
		24297,  24298,  24317,  24431,  24329,  24330,  24331,  24332,  24333,  24324,  24325,  24326,  24327,  24328, 23689 };//DONE
	public static final int[] SOF_RARE_OTHERS = new int[] { 995, 995, 23684, 23685, 23686, 23687, 23688, 23689, 23683, 23696 };//DONE
	public static final int[] SOF_JACKPOT_OTHERS = new int[] { 995, 995, 995, 995, 6585, 24440, 24300, 20929, 23695, 6585, 13734, 13736, 23698, 23699 };//DONE

	/**
	 * Link settings
	 */
	public static final String BUY_SPINS_LINK = "http://www.styxrsps.com/index.php?/donate/";
	public static final String WEBSITE_LINK = "http://www.styxrsps.com/";
	public static final String VOTE_LINK = "http://styx.runetoplist.com/vote?theme=brightbluefox";
	public static final String DONATE_LINK = "https://www.styxrsps.com/index.php?/donate/";
	public static final String SUPPORT_LINK = "http://www.styxrsps.com/";

	/**
	 * Launching settings
	 */
	public static boolean DEBUG = true;
	public static boolean HOSTED;
	public static boolean ECONOMY;

	/**
	 * If the use of the managment server is enabled.
	 */
	public static boolean MANAGMENT_SERVER_ENABLED = true;

	/**
	 * Graphical User Interface settings
	 */
	public static final String GUI_SIGN = "GeryonII GUI";
	public static final String LINE_SEPARATOR = System.getProperty("line.separator");

	/**
	 * Player settings
	 */
	public static final int START_PLAYER_HITPOINTS = 100;
	public static final WorldTile START_PLAYER_LOCATION = new WorldTile(3552, 4972, 0);
	public static final String START_CONTROLER = "";
	public static final WorldTile RESPAWN_PLAYER_LOCATION = new WorldTile(2193, 3184, 0);
	public static final int MAX_STARTER_AMOUNT = 2;

	// XP configuration
	public static final double COMBAT_XP_RATE = 115, 
			SKILLING_XP_RATE = 90,
			RUNECRAFTING_XP_RATE = 75, 
			CRAFTING_XP_RATE = 50,
			FISHING_XP_RATE = 60,
			SUMMONING_XP_RATE = 35;
	public static final int LAMP_XP_RATE = 6;
	public static final int DROP_RATE = 1;
	public static final int CRAFT_RATE = 2;
	public static final int DEGRADE_GEAR_RATE = 1; 
	public static final boolean USE_GE_PRICES_FOR_ITEMS_KEPT_ON_DEATH = true;
	public static final long CONNECTION_TIMEOUT = 30000; 


	/**
	 * World settings
	 */
	public static final int WORLD_CYCLE_TIME = 600; // the speed of world in ms

	/**
	 * Music & Emote settings
	 */
	public static final int AIR_GUITAR_MUSICS_COUNT = 1;

	/**
	 * Quest settings
	 */
	public static final int QUESTS = 183;

	/**
	 * Memory settings
	 */
	public static final int PLAYERS_LIMIT = 2000;
	public static final int LOCAL_PLAYERS_LIMIT = 250;
	public static final int NPCS_LIMIT = 32500;
	public static final int LOCAL_NPCS_LIMIT = 32500;
	public static final int MIN_FREE_MEM_ALLOWED = 30000000; // 30mb

	public static final String XMLDIRECTORY = "data/xml/";
	public static final String WARPS_PATH = XMLDIRECTORY + "warps.xml";

	/**
	 * Game constants
	 */
	public static final int[] MAP_SIZES = { 104, 120, 136, 168, 72 };

	public static final String GRAB_SERVER_TOKEN = "hAJWGrsaETglRjuwxMwnlA/d5W6EgYWx";
	public static final int[] GRAB_SERVER_KEYS = { 1441, 78700, 44880, 39771, 363186, 44375, 0, 16140, 7316, 271148, 810710, 216189, 379672, 454149, 933950, 21006, 25367, 17247, 1244, 1, 14856, 1494, 119, 882901, 1818764, 3963, 3618 };

	// an exeption(grab server has his own keyset unlike rest of client)
	public static final BigInteger GRAB_SERVER_PRIVATE_EXPONENT = new BigInteger("95776340111155337321344029627634178888626101791582245228586750697996713454019354716577077577558156976177994479837760989691356438974879647293064177555518187567327659793331431421153203931914933858526857396428052266926507860603166705084302845740310178306001400777670591958466653637275131498866778592148380588481");
	public static final BigInteger GRAB_SERVER_MODULUS = new BigInteger("119555331260995530494627322191654816613155476612603817103079689925995402263457895890829148093414135342420807287820032417458428763496565605970163936696811485500553506743979521465489801746973392901885588777462023165252483988431877411021816445058706597607453280166045122971960003629860919338852061972113876035333");

	public static final BigInteger PRIVATE_EXPONENT = new BigInteger("90587072701551327129007891668787349509347630408215045082807628285770049664232156776755654198505412956586289981306433146503308411067358680117206732091608088418458220580479081111360656446804397560752455367862620370537461050334224448167071367743407184852057833323917170323302797356352672118595769338616589092625");
	public static final BigInteger MODULUS = new BigInteger("102876637271116124732338500663639643113504464789339249490399312659674772039314875904176809267475033772367707882873773291786014475222178654932442254125731622781524413208523465520758537060408541610254619166907142593731337618490879831401461945679478046811438574041131738117063340726565226753787565780501845348613");

	/**
	 * Item settings
	 */
	public static final int[] ITEMS_KEPT_ON_DEATH = { };
	public static final boolean DOUBLE_EXPERIENCE = false;

	public static boolean YELL_ENABLED = true;


}
